//
//  KKEmotionManager.swift
//  EmotionKeyBoard
//
//  Created by King.Kong. on 16/5/31.
//  Copyright © 2016年 King.Kong. All rights reserved.
//

//  表情数据管理类

/*
 1. 获取emoticons.plist文件中的分组文件夹名称
 2. 根据分组文件夹 加载 info.plist 文件
 3. 根据emoticons 这个key 获取所有的分组表情
 4. 需要将分组表情数组处理成二维数组
 */

import UIKit

class KKEmoticonManager: NSObject {
    
    //单例对象
    static let sharedEmoticonTools: KKEmoticonManager = KKEmoticonManager()

    lazy var packages: [KKEmoticonPackage] = [KKEmoticonPackage]()
    //重写构造方法 在构造方法中给 packages赋值
    private override init() {
        super.init()
        //加载分组表情
        loadEmoticons()
    }
    
    func loadEmoticons() {
        //获取emoticons.plist 文件路径
        let path = NSBundle.mainBundle().pathForResource("emoticons.plist", ofType: nil, inDirectory: "Emoticons.bundle")!
        //使用字典的方式加载文件数据
        let dict = NSDictionary(contentsOfFile: path) as! [String : AnyObject]
        
        //获取字典数据
        let array = dict["packages"] as! [[String : AnyObject]]
        
        for item in array {
            //获取id  获取分组文件目录
            let id = item["id"] as! String
            loadPackages(id)
        }
    }
    
    //MARK: 加载分组表情
    private func loadPackages(id: String) {
        //通过id获取 分组名称
        let path = NSBundle.mainBundle().pathForResource("info.plist", ofType: nil, inDirectory: "Emoticons.bundle/" + id)!
        //通过分组名称加载分组中的 info.plist 文件
        let dict = NSDictionary(contentsOfFile: path)!
        //获取分组的中文名称
        //给分组模型对象的title赋值
        let group_name_cn = dict["group_name_cn"] as! String
        //获取表情数据
        let array = dict["emoticons"] as! [[String : String]]
        
        let p = KKEmoticonPackage(id: id,title: group_name_cn, array: array)
        //添加到数组中
        packages.append(p)
        
    }
}
